This invention relates to the field of computer graphics animation, and in particular, to stereoscopic image generation.
The recent surge in the quantity and quality of computer graphics animation for two dimensional (2D) or xe2x80x9cmonoscopicxe2x80x9d media presentation such as film or video, is largely attributable to the continued increase of computer processing power, coupled with the constant evolution of computer graphics animation techniques.
Typically, such animation involves the development of three dimensional (3D) modelling constructs in artificial computer space. The sets and props (including landscapes, buildings, trees, vehicles, furniture, etc.) as well as the characters are modelled three dimensionally in computer (or virtual) space having a 3D coordinate system, and stored as modelling data. The modelling constructs are usually collections of geometric surfaces built from mathematical primitives. The movement and modification of the characters and props is also stored and manipulated by the computer as a series of data paths correlated to time and 3D space commonly referred to as xe2x80x9canimation curvesxe2x80x9d.
The succession of two dimensional (2D) views of the animated sequence that become the frames in the film or video display, are usually defined by placing a viewpoint in the scene in the artificial computer space that xe2x80x9clooksxe2x80x9d in a certain direction, with a defined field of view (which may be stored as camera characteristic data). This point of view has many of the characteristics of a real world camera and lens, and its placement and movement within the modelled scene is analogous to the use of the camera on a real world move location. Unless expressly indicated otherwise, reference to a xe2x80x9ccameraxe2x80x9d in this specification including the claims, refers to this form of simulated camera used in artificial computer space.
It should be understood that when used in this specification including the claims, the term xe2x80x9canimation sequencexe2x80x9d may include one or more animation sequences which have been joined together.
Animation curve data is also generated and stored with respect to the desired movement and manipulation of the simulated camera. The camera""s animation curve data is synchronized with the various animation curves used to move and manipulate the various characters and props, in order for the camera to be able to view the animated action. Through a complicated series of computations called xe2x80x9crenderingxe2x80x9d, the computer then calculates the view for each frame to approximate what a real world camera would xe2x80x9cseexe2x80x9d if it was positioned and provided with characteristics similar to the simulated camera and if the modelling constructs were actually solid objects in the real world.
When the animation sequence is complete, the data generated (and typically stored) by the animation process includes the modelling data and the related modelling animation curve data, data relating to the characteristics of the camera, such as field of view, aspect ratio, resolution and horizon position, as well as the camera animation curve data, and the rendered 2D computer graphics animation images which form the animation sequence. As a result, the modelling data and related animation curve data and the camera characteristics data and camera animation curve data may be remanipulated so that a different animation sequence may be rendered.
It should be understood that when used in this specification including the claims, the term xe2x80x9chorizon positionxe2x80x9d refers to the vertical offset which may be applied to change the normal horizon position in the image. For large format theatres, typically a vertically off-centred lens is used to change the normal horizon position which is typically in the vertical centre of the image.
Less common, but still relatively well-known, is the ability to generate a simulated 3D or xe2x80x9cstereoscopicxe2x80x9d image by combining two 2D images in left and a right image) of the same scene, each from a slightly different perspective. Typically, both 2D images are presented simultaneously (or in sufficiently rapid alternation to appear to be presented simultaneously) on the same 2D medium, such as a film or TV screen. Through one of several different known techniques, such as the use of filtered or shuttered lenses or head-mounted display devices containing a miniature video screen for each eye, the left image is restricted so that it is viewed solely by the left eye, and the right image is restricted so that it is viewed solely by the right eye. These techniques simulate the visual process by which a person sees three dimensionally in the real world.
Although stereoscopic images of the real world have been produced for many years by special stereoscopic film cameras, the advent of computer graphics animation technology has provided another forum for generating simulated 3D images. The rendering of the stereoscopic images by computer graphics animation involves a similar process as used in generating 2D media presentations. As for computer graphics animation generated for 2D media presentations, a 3D modelling construct is generated and manipulate over time. However, when generating stereoscopic images, two virtual cameras (a left and a right camera) are created which have slightly offset perspectives. The rendering for each camera is performed in the same manner as for standard 2D media presentations. In most instances, it is preferable if the left and right cameras are fixed to each other in terms of position and camera alignment, in order to simulate a person""s eyes travelling through the computer space.
As with real world stereoscopic images, two main techniques are available for generating stereoscopic computer graphics images. The first technique involves aligning the camera axes (or fields of view) of the left and right cameras so that they are parallel. This method is capable of producing orthostereoscopic images, in which the relative distances between the cameras and the various constructs in computer space and the relative sizes of these constructs, essentially match the apparent sizes and distances when presented to the viewer. In order to generate orthostereoscopic images, it is necessary for the separation between the left and right cameras to be scaled to match the interocular distance between an average person""s eyes as if such average person were modelled in the computer space. Because the camera axes are parallel, the fields of view do not overlap completely. As a result, unless some further step is taken, strips of non-overlapping (and hence non-stereo) image information exist at the left and right edges of the combined left and right images.
The second technique attempts to address this perceived problem in that it involves converging the camera axes of the left and right cameras. This process creates a plane at which the left and right camera fields of view overlap completely. A consequence of converging the camera axes, however, is that the stereoscopic images produced, are not orthostereoscopic.
The term xe2x80x9cstereoscopic cameraxe2x80x9d is commonly understood by those skilled in the art to mean the combination of a left and a right camera linked together for the purpose of generating stereoscopic images. Even though it should be understood that a single camera is by necessity monoscopic in nature in order to distinguish between a camera used to create the original computer graphics animation intended for 2D presentation (a xe2x80x9c2D cameraxe2x80x9d), the term xe2x80x9cstereoscopic cameraxe2x80x9d, as used in the specification including the claims refers to a camera (such as the left or right camera) which is being used for purpose of generating a stereoscopic animation sequence.
It has been known to reuse the modelling data and the related animation curve data generated for a 2D media presentation, in order to render stereoscopic images. However, these techniques do not readily lend themselves to reusing the camera animation curves generated in the process of creating the 2D media presentationxe2x80x94unless straight line motion without camera rotation was used to manipulate the original 2D camera, as discussed in relation to FIG. 2F below, applying a simple transposition of the original 2D camera animation curve in order to generate one new camera animation path for a second new camera, or alternatively to generate two new camera animation paths for two new cameras, results in serious stereoscopic errors. Consequently, the known techniques have required considerable time and expense on the part of the computer graphics animators to determine the camera animation curves for the left and right cameras, for the intended 3D presentation. Typically this process involves reviewing the original 2D presentation, and then estimating the camera animation curves necessary for the left and right cameras, in order for the rendering process to generate stereoscopic sequences which roughly parallel the original 2D sequences.
Accordingly, there is a need for a method and apparatus which permits efficient reuse of data created during the process of creating computer graphics animation for a 2D presentation, in order to create a 3D stereoscopic presentation.
In the field of generating stereoscopic computer animation sequences, it is known to use a spreadsheet to make certain technical calculations in advance of performing costly rendering, to determine if there are potential difficulties with respect to the positioning of the cameras in the modelling scene, or with respect to the interocular distance between the stereoscopic cameras. Such potential difficulties include having an object appearing to be very close to the viewer in real world spacexe2x80x94in these cases, the stereoscopic image is created may cause discomfort to the viewer""s eyes.
In the prior art spreadsheets, it was necessary to ensure that the modelling units used in generating the modelling constructs in computer space were scaled to real world units of measurement, such as in feet or meters. This enabled the computer graphics animator to determine what the apparent location and size in the real world of different objects in the scene would be when the 3D animation sequence was displayed. If the modelling constructs were not scaled in real world units of measurement, prior art spreadsheets required the modelling units to first be converted into real world units, before the spreadsheet calculations could be performed.
Accordingly, there is also a need for a method of determining certain characteristics of an animation sequence, such as the apparent (to the viewer) size and distance of objects or modelling constructs appearing in the sequence, prior to the sequence being rendered, while permitting the modelling units to be arbitrary (but consistent) units of measurement.
The present invention is directed towards a system for generating stereoscopic image data from animation data comprising modelling data and 2D camera animation curve data generated and stored during the process of creating a computer graphics animation sequence(s) for a monoscopic or 2D presentation.
In one aspect, the invention comprises a system for generating stereoscopic camera animation curve data from 2D camera animation curve data. The system comprises a database which stores modelling data and the 2D camera animation curve data, and a stereoscopic camera animation curve data generator. The stereoscopic camera animation curve data generator inputs the 2D animation curve data, and generates stereoscopic camera animation curve data for stereoscopic cameras. The stereoscopic camera animation curve data generator comprises a node generator which generates a dummy node, a first stereoscopic camera fixed in position in position and alignment relative to the dummy node, as well as a second stereoscopic camera fixed in position and alignment relative to the dummy node and separated from the first stereoscopic camera.
In another aspect, the invention comprises a system for generating stereoscopic camera animation curve data from 2D camera animation curve data created for a 2D camera. The system comprises a database for storing modelling data and the 2D camera animation curve data, and a stereoscopic camera animation curve data generator. The stereoscopic camera animation curve data generator inputs the 2D animation curve data, generates a second stereoscopic camera fixed in position and alignment relative to the 2D camera and separated from the 2D camera, and generates second stereoscopic camera animation curved data.
In yet another aspect, the invention comprises a system for generating stereoscopic image data from animation data comprising modelling data and 2D camera animation curve data. This system comprises a database in which the modelling data and the 2D camera animation curve data are stored, as well as a stereoscopic camera animation curve data generator and an animation sequence renderer. The stereoscopic camera animation curve data generator inputs the animation curve data and generates stereoscopic camera animation curve data for at least one stereoscopic camera. The renderer inputs the stereoscopic camera animation curve data and the modelling data and generates stereoscopic image data.
The present invention is also directed toward a method for generating stereoscopic camera animation curve data from 2D camera animation curve data, comprising the following steps:
(a) generating a dummy node;
(b) generating a first stereoscopic camera fixed in position and alignment relative to the dummy code;
(c) generating a second stereoscopic camera fixed in position and alignment relative to the dummy node and separated from the first stereoscopic camera;
(d) applying the 2D animation curve data to the dummy node;
(e) generating first stereoscopic camera animation curve data correlated to the 2D animation curve data; and
(f) generating second stereoscopic camera animation curve data correlated to the 2D animation curve data.
In another aspect, the present invention is also directed toward a method for generating stereoscopic camera animation curve data from 2D camera animation curve data created for a 2D camera, comprising the following steps:
(a) generating a second stereoscopic camera fixed in position and alignment relative to the 2D camera and separated from the 2D camera;
(b) applying the 2D animation curve data to the 2D camera; and
(c) generating second stereoscopic camera animation curve data correlated to the 2D animation curve data.
In yet another aspect, the present invention is also directed toward a method for generating stereoscopic image data from animation data comprising modelling data and 2D camera animation curve data, comprising the following steps:
(a) generating a dummy node;
(b) generating a first stereoscopic camera fixed in position and alignment relative to the dummy node;
(c) generating a second stereoscopic camera fixed in position and alignment relative to the dummy node and separated from the first stereoscopic camera;
(d) applying the 2D animation curve data to the dummy node;
(e) generating first stereoscopic camera animation curve data correlated to the 2D animation curve data;
(f) generating second stereoscopic camera animation curve data correlated to the 2D animation curve data;
(g) rendering the stereoscopic image data correlated to the first stereoscopic camera animation curve data and to the modelling data; and
(h) rendering second stereoscopic image data correlated to the second stereoscopic camera animation curve data and to the modelling data.
In still another aspect, the subject invention is directed towards a system for determining attributes of a stereoscopic image to be generated using modelling data and a first stereoscopic camera and a second stereoscopic camera. The system comprises an input device and a processor capable of receiving measured data from the input device correlated to measurements in arbitrary but internally consistent modelling units taken from the modelling data and the position of the first and second stereoscopic cameras, for calculating attribute data correlated to attributes of the stereoscopic image in real world units, and an output device operationally coupled to the processing means for displaying the attribute data.